//package org.cboard.mail;
//
//import lombok.extern.slf4j.Slf4j;
//
//import java.io.File;
//import java.util.*;
//import java.util.concurrent.ArrayBlockingQueue;
//import java.util.concurrent.ThreadPoolExecutor;
//import java.util.concurrent.TimeUnit;
//
///**
// * @author mizhonghua
// * @date 2016年4月15日 下午5:43:35
// * @function 邮件发送基本方法
// */
//@Slf4j
//public class EmailUtil {
//
//    /**
//     * 发送邮件,支持图片
//     *
//     * @param mail
//     * @param deleteTempFile 是否删除临时文件
//     * @return
//     */
//    private static HashMap<String, String> mailPropertyMap;
//
//    // 使用
//    // private static ExecutorService service = Executors.newCachedThreadPool();
//
//    // https://blog.csdn.net/wangwenhui11/article/details/6760474
//    static ThreadPoolExecutor threadPool = new ThreadPoolExecutor(10, 10, 0,
//            TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(100000),
//            new ThreadPoolExecutor.DiscardOldestPolicy());
//
//
//    private static String MAIL_TITLE = "<h2>%s</h2>";
//
//    /**
//     * 发送邮件, 按照标题，和内容发送邮件。
//     *
//     * @param mailSubject 标题
//     * @param mailContent 内容
//     * @param toList 收件人列表
//     * @return
//     */
//    public void sendMailContent(String mailSubject, String mailContent,List<String> toList) {
//
//
//        log.info("####################### sendMailContent : start mailSubject:{},toList:{}",mailSubject,toList);
//        // 异步发送邮件。
//        //threadPool.submit(() -> {
//
//            try {
//
//                if (toList==null||toList.size()==0){
//                    log.error("sendMailContent 收件人地址不能为空！");
//                }
//                Email email = new Email();
//                email.setSubject(mailSubject);
//
//                email.setTo(toList);
//
//                log.info("发送邮件内容：");
//
//                // 发送邮件。加入日期，
//                email.setContent(mailContent);
//
//                sendMail(email);
//
//            } catch (Exception e) {
//                log.error(e.getMessage(), e);
//            }
//        //});
//        log.info("####################### sendMailContent : end  " + new Date());
//
//    }
//    /**
//     * 发送邮件,支持图片
//     *
//     * @param mail
//     * @return
//     */
//    public boolean sendMail(Email mail) {
//        boolean result;
//        try {
//
//            // 设置业务数据
//            Map<String, Object> dataMap = mail.getDataMap();
//
//            Map<String, String> map = new HashMap<>();
//
//            //邮件服务器相关配置
//            map.putAll(mailPropertyMap);
//
//            //接收人的帐号，多个以","号隔开
//            map.put("to", String.join(",", mail.getTo()));
//
//            List<String> cc = mail.getCc();
//            if (null != cc && cc.size() > 0) {
//                map.put("cc", String.join(",", cc));
//            }
//            List<String> ms = mail.getMs();
//            if (null != ms && ms.size() > 0) {
//                map.put("ms", String.join(",", ms));
//            }
//            //邮件主题
//            map.put("subject", mail.getSubject());
//            //邮件内容
//            map.put("body", mail.getContent());
//
//            //内嵌了多少张图片，如果没有，则new一个不带值的Map
//            // 需要删除的图片
//            List<File> imageFileList = new ArrayList<>();
//            Map<String, String> image = new HashMap<>();
//            if (dataMap != null) {
//                if (dataMap.containsKey(Email.IMAGE_MAP_KEY)) {
//                    for (Map.Entry<String, String> entry : ((Map<String, String>) dataMap.get(Email.IMAGE_MAP_KEY)).entrySet()) {
//                        image.put(entry.getKey(), entry.getValue());
//                        imageFileList.add(new File(entry.getValue()));
//                    }
//                }
//            }
//
//            log.info("mail map: {}", map);
//
//            //创建实例
//            SendMail sm = new SendMail(map, new ArrayList<>(), image);
//            //执行发送
//            sm.send();
//            result = true;
//
//        } catch (Exception e) {
//            e.printStackTrace();
//            log.error("send mail error", e);
//            result = false;
//        }
//        return result;
//    }
//
//    public void setMailPropertyMap(HashMap mailPropertyMap) {
//        EmailUtil.mailPropertyMap = mailPropertyMap;
//    }
//
//    public static String getProperty(String key) {
//        return mailPropertyMap.get(key);
//    }
//
//
//    public static void main(String[] args) {
//
//    }
//
//}
